home *** CD-ROM | disk | FTP | other *** search
/ The Utilities Experience / The Utilities Experience - Volume 1.iso / software / misc / e-n / exept49 / execpatch.doc < prev    next >
Text File  |  1978-06-29  |  6KB  |  126 lines

  1.                  =====================================
  2.                       ExecPatch 4.9 (25 May 1994)
  3.                  Copyright (C) 1993-1994 Arthur Hagen.
  4.                  =====================================
  5.        This software is FreeWare, and NOT in the Public Domain!
  6.  
  7.            Requires KickStart 36.xx or above, CLI use only.
  8.       Should work with all processor types / FPU-configurations.
  9.         Requires a few hundred bytes of FAST-mem to be present.
  10.  
  11. -----------------------------------------------------------------------
  12.  
  13. The Amiga is a multitasking machine (no kidding!), and will happily
  14. switch its CPU use between several tasks and processes too fast for the
  15. user really to notice.  This task switching system is the whole basis
  16. for the Amiga's multitasking capabilities, and has, naturally, been
  17. coded in efficient assembly to reduce overhead as much as possible.
  18. Even so, several of the basis multitasking functions of the system
  19. could be optimised even further, thus speeding up the machine when
  20. several tasks are running simultaneously, and/or the CPU use is high.
  21. So, I wrote this little utility that will replace some of the systems
  22. key functions with more speed-optimised, but excactly equal code.  Just
  23. put ExecPatch in your S:User-Startup or similar.
  24.  
  25. The functions that will be modified in exec.library are:
  26. Switch()       Dispatch()     Exception()    Remove()
  27. Enqueue()      Wait()         Signal()       WaitPort()
  28. DoIO()         WaitIO()       CheckIO()      ExitIntr()
  29. Schedule()     Reschedule()   Permit()       ObtainSemaphore() (*)
  30. SetExcept()    SetSignal()
  31.  
  32. (*) Under 3.0/3.1 only
  33.  
  34. In addition, if you have a CPU without cache, the cache functions in
  35. exec.library that does nothing at all will be replaced with a return
  36. statement in the jumptable itself.  The functions will be checked first
  37. to see if they really does nothing but return, so everything should be
  38. safe.
  39.  
  40. -----------------------------------------------------------------------
  41.  
  42. Six executable files are now included in the archive:
  43.  
  44. ExecPatch       : Works on all 68000/010/020/030-equipped machines
  45.                   without FPU coprocessors like the 68881 or 68882.
  46. ExecPatch_010   : As above, but will not work on 68000-machines.
  47.                   A few cycles faster than the "standard" version.
  48. ExecPatch_881   : For 68040 or 68020/30-machines equipped with a FPU.
  49.  
  50. ExecPatch_LED,    Equal to the above versions, but turns the power LED
  51. ExecPatch_010LED, dark when the CPU is idle.  This will permanently
  52. ExecPatch_881LED: enable the low-pass audio filter for all tasks, and
  53.                   might interfere with some audio players.
  54.                   Note that these LED patches will steal FAR less CPU
  55.                   time than the program "Idle-LED" or similar programs
  56.                   because it will not require extra interrupts or any
  57.                   tasks that must be scheduled, but is a part of the
  58.                   scheduling process itself.
  59.  
  60. -----------------------------------------------------------------------
  61.  
  62. How much does ExecPatch help?
  63. =============================
  64. ExecPatch will only speed up the machine in a multitasking situation,
  65. so speed test programs will not report any increased speed, unless the
  66. test can be made with multitasking enabled.  A fair test of how much
  67. this program will help YOU is difficult to propose, but you might try
  68. something like running AIBB with multitasking ON, priority 0, while
  69. your favourite program is doing something in the background.  Then do
  70. the same test again, but start ExecPatch first.
  71. The speed increase will depend on several things, among them are the
  72. speed of the FAST-MEM and the CPU type.  But count on ExecPatch being
  73. faster except for on a slow-mem-only-expanded machine.
  74.  
  75. ----------------------------------------------------------------------
  76.  
  77. Bugs/caveats:
  78. =============
  79. 1) Some virus killers (like VirusChecker and my own VMon) might report
  80.    that vectors have changed (especially the DoIO vector).  This is as
  81.    it should be, as the vector really has changed, and it is nothing to
  82.    worry about.  If there was a virus lurking on that vector, it would
  83.    have been replaced by ExecPatch's routine.
  84. 2) ExecPatch will steal a couple of hundred bytes permanently, and
  85.    these will not be released to the system except at reboot.
  86. 3) If you *only* have chip- and slow-mem on your system, don't expect
  87.    too much from patches like this, as running code from ROM will
  88.    usually be faster, especially when displaying graphics.
  89.  
  90. -----------------------------------------------------------------------
  91.  
  92. Changes since version 4.8:
  93.    Should now work on 2.0/2.1-equipped machines.
  94.    Most patches 16-byte-aligned for maximum performance with
  95.    burst-ram and "advanced" processors.
  96. Changes since version 4.6:
  97.    SetExcept() and SetSignal() patched.  Minor code enhancements.
  98.    Should now work on 68040-equipped machines.
  99. Changes since version 4.4:
  100.    Source rewritten.  ObtainSemaphore() patched.
  101. Changes since version 4.3:
  102.    Permit patch added.  A few minor enhancements.  LED versions for all
  103.    processor/fpu-types included in archive.
  104. Changes since version 4.2:
  105.    Had to make a kludge for the WaitPort()-patch, since EaglePlayer
  106.    expected register A0 to be unchanged if there already were messages
  107.    on the list.  This really is a bug in the players code (german pro-
  108.    grammers!), but it should now work.  Most patches longword-aligned
  109.    for performance increase on 68020+.
  110. Changes since version 3.0:
  111.    Four more patches made.  Just a weeny bit faster code.
  112. Changes since version 2.1:
  113.    Should now work on OS 3.0+ machines.
  114.    Optimised slightly.
  115.  
  116. -----------------------------------------------------------------------
  117.  
  118.                              CrippleWare?
  119.                              ============
  120.  
  121. Yes - this program is CrippleWare.  If you like it, just send me a
  122. cripple instead of payment.
  123.  
  124. Enjoy,
  125. *Art
  126.